﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyLib.MyBase.MyWeb;
using System.ComponentModel;
using MyLib.MyUtility;
using MyChocCuoi.Setting;
namespace MyLoad.LoadStatic
{
    public class LError:MyLoadWeb
    {

        public enum ErrorType
        {
            [DescriptionAttribute("Không xác định được lỗi xảy ra, xin vui lòng thử lại hoặc liên hệ với Người quản trị.")]
            Nothing = 0,
            [DescriptionAttribute("Xin lỗi, đăng nhập không thành công, xin vui lòng thử lại sau ít phút.")]
            LoginFail = 1,
            [DescriptionAttribute("Xin lỗi, xin vui lòng đăng nhập trước.")]
            NotLogin = 2,
            [DescriptionAttribute("Xin lỗi, trang này không tồn tại, xin hãy kiểm tra lại.")]
            InvalidURL = 3,
        }
        public enum IconType
        {
            Nothing = 0,
            Warning = 1,
            Error =2,
        }


        bool IsFacebox = false;
        string Message = string.Empty;
        public LError(MyASHX CurrentPage, string Message)
        {
            this.CurrentPage = CurrentPage;
            TemplatePath = "~/Templates/Static/Error.html";
            Init();
        }

        public IconType mIconType = IconType.Nothing;

        /// <summary>
        /// 
        /// </summary>
        /// <param name="NoteID"></param>
        /// <returns></returns>
        public static void RedirectErrorLink(ErrorType mErrorType)
        {
            string ErrorLink = WebSetting.ErrorLink+"?eid=" + ((int)mErrorType).ToString();
            MyCurrent.CurrentPage.Response.Redirect(ErrorLink, false);
        }

        public LError(MyASHX CurrentPage, ErrorType mErrorType)
        {
            
            this.CurrentPage = CurrentPage;
            TemplatePath = "~/Templates/Static/Error.html";
            this.Message = MyEnum.StringValueOf(mErrorType);

            Init();
        }

        public LError(MyASHX CurrentPage, ErrorType mErrorType, bool IsFacebox)
        {
            this.IsFacebox = IsFacebox;
            this.CurrentPage = CurrentPage;
            this.Message = MyEnum.StringValueOf(mErrorType);
            Init();
        }


        // Hàm trả về chuỗi có chứa mã HTML
        protected override string BuildHTML()
        {
            try
            {
                if (IsFacebox)
                {
                    return "<div class=\"fb-note\">"+Message+"</div>";
                }
                else
                {
                    int ErrorID = 0;
                    if(CurrentPage.Request.QueryString["eid"] != null)
                    {
                        int.TryParse(CurrentPage.Request.QueryString["eid"], out ErrorID);
                    }

                    Message = MyEnum.StringValueOf((ErrorType)ErrorID);

                    string[] arr = { Message };
                    return LoadTemplateByArray(TemplatePath, arr);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}
